Skip to contentMethod: PruefeUndSimuliereKommando(Collection, ErmittelteBelegungen)
      1: package servicekommandos.simulation;
2: 
3: import material.MaterialMitMessung;
4: import rollenbelegung.ErmittelteBelegungen;
5: import schnittstelle.kommandoArchitektur.KommandoOhneExceptionMitResultat;
6: import schnittstelle.kommandoArchitektur.KommandoVisitor;
7: import simulation.SimulationsErgebnis;
8: import simulation.SimulationsServiceImpl;
9: import util.exceptions.PPSException;
10: 
11: import java.util.Collection;
12: 
13: /**
14:  * Klasse, welche ein Kommando darstellt, welches die Operation pruefeUndSimuliereProduktionsplanung aus {@link simulation.SimulationsService} kapselt.
15:  */
16: public final class PruefeUndSimuliereKommando extends KommandoOhneExceptionMitResultat<SimulationsErgebnis> {
17: 
18: 
19:     private final Collection<MaterialMitMessung<?>> verfuegbaresMaterial;
20:     private final ErmittelteBelegungen ermittelteBelegungen;
21: 
22:     private PruefeUndSimuliereKommando(final Collection<MaterialMitMessung<?>> verfuegbaresMaterial, final ErmittelteBelegungen ermittelteBelegungen) {
23:         this.verfuegbaresMaterial = verfuegbaresMaterial;
24:         this.ermittelteBelegungen = ermittelteBelegungen;
25:     }
26: 
27:     /**
28:      * Erstellt das Kommando mit den entsprechenden Parametern für die Operation.
29:      * @param verfuegbaresMaterial verfuegbaresMaterial für pruefeUndSimuliereProduktionsplanung.
30:      * @param ermittelteBelegungen ermittelteBelegungen für pruefeUndSimuliereProduktionsplanung.
31:      * @return das erstellte Kommando.
32:      */
33:     public static PruefeUndSimuliereKommando create(final Collection<MaterialMitMessung<?>> verfuegbaresMaterial, final ErmittelteBelegungen ermittelteBelegungen) {
34:         return new PruefeUndSimuliereKommando(verfuegbaresMaterial, ermittelteBelegungen);
35:     }
36: 
37:     @Override
38:     protected SimulationsErgebnis doIt() {
39:         return new SimulationsServiceImpl().pruefeUndSimuliereProduktionsplanung(this.verfuegbaresMaterial, this.ermittelteBelegungen);
40:     }
41: 
42:     @Override
43:     public void accept(final KommandoVisitor v) throws PPSException {
44:         // TODO Wenn man den Visitor dies handeln lässt, muss der Visitor aus model das Packet service kennen.
45:         // Service kennt aber schon model und wir hätten eine circular dependency
46:     }
47: }